#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#include <vector>

using namespace std;
using LL = long long;

const int N = 3e5 + 10;

int n;

//从后往前删除数据，这样的影响最小，最接近最优解

void solve(){  
    vector<int> nums;

    scanf("%d", &n);
    int x;
    for(int i = 0; i < n; i ++){
        scanf("%d", &x);
        nums.push_back(x);
    }   

    while(true){
        int index = 0;
        for(int i = nums.size(); i >= 1; i--){
            int &temp = nums[i - 1];
            if(temp % (i + 1) != 0){
                index = i;
                break;
            }
        }

        if(index == 0){
            printf("NO\n");
            return;
        }


        for(int i = index; i < nums.size(); i ++){
            nums[i - 1] = nums[i];
        }
        nums.pop_back();
        
        if(nums.size() == 0){
            printf("YES\n");
            return;
        }
    }
}

int main(){
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);

    int T;
    scanf("%d", &T);
    while(T--){
        solve();
    }

    return 0;
}